/**
 * Created by henian.xu on 2017/4/11.
 *
 */

$(function () {
  //缓存jQ对象
  var
    $loginForm = $('#loginForm');

  //用户名格式验证
  $.validator.addMethod("isUsername", function (value, element) {
    var username = /^[a-zA-Z0-9_]{3,20}$/;
    return this.optional(element) || username.test(value);
  }, '请输入正确用户名格式');
  //密码格式验证
  $.validator.addMethod("isPassword", function (value, element) {
    var
      reg1 = /[!@#$%^&*()_?<>{}.]{1}/,
      reg2 = /([a-zA-Z0-9!@#$%^&*()_?<>{}.]){6,20}/,
      reg3 = /[a-zA-Z]+/,
      reg4 = /[0-9]+/;
    if(reg1.test(value) && reg2.test(value) && reg3.test(value) && reg4.test(value)){
      return true;
    }else if(!reg1.test(value)){
      // alert("需包含一个特殊字符");
      return false;
    }else if(!reg2.test(value)){
      // alert("长度在6-20位");
      return false;
    }else if(!reg3.test(value)){
      // alert("需含有字母");
      return false;
    }else if(!reg4.test(value)){
      // alert("需含有数字");
      return false;
    }
    // return this.optional(element) || password.test(value);
  }, '必须是长度6-20且至少1个特殊字符的字母与数字组合');

  //表单验证
  $loginForm.validate({
    rules: {
      username: {
        required: true,
        isUsername: true,
        remote:'validate.php'//远程验证 接口只能返回 true or false,
      },
      password: {
        required: true,
        isPassword: true
      }
    },
    messages: {
      username: {
        required: '用户名不能为空',
        isUsername: '请输入正确用户名格式',
        remote:'用户名被占用'
      },
      password: {
        required: '密码不能为空',
        isPassword: '必须是长度6-20且至少1个特殊字符的字母与数字组合'
      }
    }
  })
});